package cn.slipi.admin.service;

import cn.slipi.admin.entity.CsmGrant;
import cn.slipi.admin.entity.CsmProject;
import cn.slipi.admin.entity.PdrApi;
import cn.slipi.admin.service.dto.in.pdrapi.GrantListDTO;
import cn.slipi.admin.service.dto.in.pdrapi.ListDTO;
import cn.slipi.admin.service.dto.in.pdrapi.NoGrantListDTO;
import cn.slipi.admin.service.dto.in.pdrapi.SaveDTO;
import cn.slipi.admin.service.dto.out.doc.WriteDTO;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 生产者项目（服务提供者） 服务类
 * </p>
 *
 * @author lee
 * @since 2020-12-01
 */
public interface PdrApiService extends IService<PdrApi> {
    IPage<PdrApi> getList(ListDTO listDTO);

    IPage<PdrApi> getNoGrantList(NoGrantListDTO listDTO);

    IPage<CsmGrant> getGrantList(GrantListDTO grantListDTO);

    PdrApi add(SaveDTO saveDTO);

    PdrApi update(Integer id, SaveDTO saveDTO);

    PdrApi detail(Integer id);

    List<PdrApi> getListByIds(List<Integer> ids);

    List<CsmProject> getCsmByPdrApiId(Integer id);

    /**
     * 根据消费者获取消费者授权接口
     *
     * @param csmId
     */
    WriteDTO makeApiDoc(Integer csmId);
}
